
/*
*Released on 28th June 2008.
*Any violations can be reported at paritosh@wikiocean.net
*What is treated as violations can be found at www.wikiocean.net/ppl1-voilations*
******************************************************************************
* The contents of this file are subject to POOL Public License 1.0 and later.
* POOL Public License is based on Affero GPL v3 and additional conditions.
* ("License"); You may not use this file except in compliance with the License
* You may obtain a copy of the Affero GPL v3 License at http://www.gnu.org/licenses/agpl.html
* You may obtain a copy of the POOL Public License 1.0 or later at www.wikiocean.net/license/ppl.html
* Software distributed under POOL Public License 1.0 is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for
* the specific language governing rights and limitations under the License.
* The Initial Developer of the Original Code is Paritosh Pungaliya (C) 2008. All Rights Reserved.
******************************************************************************
* Objective of the additional terms (license)
* 1) Is to extend the software freedom to freedom to work.
* 2) To ensure that knowledge is free from monopoly of agencies.
* 3) To avoid a situation where big corporate or investor can buy out free software groups and companies and then start milking the communities built around it.
* (this trend can be seen how the freedom is curtailed in companies that get Venture Capital funding.)
******************************************************************************
*/

package  guidatatag;

import java.util.*;

import control.Control;
import utility.MessageGenerator;
import dbmanager.DBManager;

public class RegisterMasterPl
{
	LinkedHashMap<Object, LinkedList<Object>> MainHash,OutputObjects;
	String text;
	MessageGenerator msg;
	
	public RegisterMasterPl(LinkedHashMap<Object, LinkedList<Object>> MainHash) 
	{
		this.MainHash = MainHash;
		msg = new MessageGenerator();
	}
	
	public void register()
	{
		Set<Object> s1 = MainHash.keySet();
		Iterator<Object> i1 = s1.iterator();
		
		Hashtable<Object, Object> prophash = new Hashtable<Object, Object>();
		Hashtable<Object, Object> masterhash = new Hashtable<Object, Object>();
				
		while (i1.hasNext()) 
		{
			StringBuffer sbr = new StringBuffer();
			String key = (String)i1.next();
			LinkedList<Object> templist = (LinkedList<Object>)MainHash.get(key);
			 
			 for(int i = 0;i < templist.size();i+=3)
			 {
				 prophash = new Hashtable<Object, Object>();
				 prophash.put("pid", templist.get(i));
				 prophash.put("pv", templist.get(i+1));
				 prophash.put("ref", templist.get(i+2));
				 
				 sbr.append(msg.convertToMessage("property_details", "add", prophash));				 
			 }
			 
			 masterhash.put("name", key);
			 String finalmsg   = "11 master table add"+msg.MasterMessage("master_table", masterhash, "add")+sbr.toString()+"#system";
			 System.out.println(finalmsg);
			 
			 // Call control class to register master-pl
			 Control control = new Control("systemuser",finalmsg);
			 /*control.messageProcessing();
			 control.requestProcess();*/		 			
		}
	}

	
	public static void main(String[] args)
	{
		LinkedHashMap<Object, LinkedList<Object>> MainList = new LinkedHashMap<Object, LinkedList<Object>>();		
		LinkedList<Object> ArticleList = new LinkedList<Object>();			
		
		LinkedList<Object> Default123 = new LinkedList<Object>();		
		
		Default123.add("origin");
		Default123.add("xyz");
		Default123.add("0");		
		Default123.add("format");
		Default123.add("text");
		Default123.add("1");		
		System.out.println(Default123);
		
		ArticleList.add("default");
		ArticleList.add("Default123");
		ArticleList.add("0");		
		
		LinkedList<Object> Behavior123 = new LinkedList<Object>();		
		Behavior123.add("1/M");
		Behavior123.add("M");
		Behavior123.add("0");		
		Behavior123.add("H/N");
		Behavior123.add("H");
		Behavior123.add("1");
		System.out.println(Behavior123);
		
		ArticleList.add("behavior");
		ArticleList.add("Behavior123");
		ArticleList.add("1");
		
		System.out.println(ArticleList);
		
		
		MainList.put("Default123",Default123);
		MainList.put("Behavior123",Behavior123);
		MainList.put("Article123",ArticleList);
		System.out.println(MainList);
		
		
		DBManager db = new DBManager();
		
		RegisterMasterPl reg = new RegisterMasterPl(MainList);
		reg.register();
		
		
	}

}
